<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      display: grid;
      grid-template-columns: repeat(3, 100px);
      grid-template-rows: repeat(3, 100px);
      
      /* 划分网格以后，容器的子元素会按照顺序，自动放置在每一个网格。默认的放置顺序是"先行后列"，即先填满第一行，再开始放入第二行 */
      /* grid-auto-flow: row; */
      /* 这个顺序由grid-auto-flow属性决定，默认值是row，即"先行后列"。也可以将它设成column，变成"先列后行"。 */
      /* grid-auto-flow: column; */

      /* 某些项目(item-1 item-2)指定位置以后，剩下的项目怎么自动放置 */
      /* 现在修改设置，设为row dense，表示"先行后列"，并且尽可能紧密填满，尽量不出现空格。 */
      /* grid-auto-flow: row dense; */

      /* 如果将设置改为column dense，表示"先列后行"，并且尽量填满空格。 */
      grid-template-columns: repeat(4, 100px);
      grid-auto-flow: column dense;
    }

    .item {
      font-size: 4em;
      text-align: center;
      border: 1px solid #e5e4e9;
    }

    .item-1 {
      background-color: #ef342a;
      grid-column-start: 1;
      grid-column-end: 3;  
    }

    .item-2 {
      background-color: #f68f26;
      grid-column-start: 1;
      grid-column-end: 3; 
    }

    .item-3 {
      background-color: #4ba946;
    }

    .item-4 {
      background-color: #0376c2;
    }

    .item-5 {
      background-color: #c077af;
    }

    .item-6 {
      background-color: #f8d29d;
    }

    .item-7 {
      background-color: #b5a87f;
    }

    .item-8 {
      background-color: #d0e4a9;
    }

    .item-9 {
      background-color: #4dc7ec;
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="item item-1">1</div>
    <div class="item item-2">2</div>
    <div class="item item-3">3</div>
    <div class="item item-4">4</div>
    <div class="item item-5">5</div>
    <div class="item item-6">6</div>
    <div class="item item-7">7</div>
    <div class="item item-8">8</div>
    <div class="item item-9">9</div>
  </div>
</body>

</html>